package java学习.其他;

/**
 * ClassName: 每日一题
 * Package: java学习.其他
 * Description:
 *
 * @Author 张蛟龙
 * @Create 2023/4/4 17:16
 * @Version 1.0
 */
public class 每日一题 {
    public static void main(String[] args) {

    }
    public int mergeStones(int[] stones, int k) {
        int len = stones.length;
        int sum = 0;
        if(len == 1){
            return stones[0];
        }else if (k > 2 && stones.length % (k - 1) != 1) {
            return -1;
        }

        return sum;
    }

    /**
     * 在无限的平面上，机器人最初位于(0, 0)处，面朝北方。注意:
     *
     * 北方向 是y轴的正方向。
     * 南方向 是y轴的负方向。
     * 东方向 是x轴的正方向。
     * 西方向 是x轴的负方向。
     * 机器人可以接受下列三条指令之一：
     *
     * "G"：直走 1 个单位
     * "L"：左转 90 度
     * "R"：右转 90 度
     * 机器人按顺序执行指令 instructions，并一直重复它们。
     *
     * 只有在平面中存在环使得机器人永远无法离开时，返回true。否则，返回 false。
     *
     *
     */
    public boolean isRobotBounded(String instructions) {
        int[] s = {0,1,0,-1};
        int[] w ={0,0};
        int x = (1<<10);
        int y = ((1<<10) + 1);
        for (char c:instructions.toCharArray()){
            switch (c){
                case 'G':
                    w[0] += s[x&3];
                    w[1] += s[y&3];
                    break;
                case 'L':
                    x--;y--;
                    break;
                case 'R':
                    x++;y++;
                    break;
            }
        }
        if(w[0] == 0 && w[1] == 0){
            return true;
        }
        if((x&3)==0 && (y&3)==1){
            return false;
        }
        return true;
    }
}
